import 'package:get/get.dart';

import 'preview_state.dart';

class PreviewLogic extends GetxController {
  final PreviewState state = PreviewState();

  // 删除内容
  void deleteContent(GeneratedContent content) {
    state.generatedContents.remove(content);
  }

  // 切换选择状态
  void toggleSelection(GeneratedContent content) {
    // 先将所有内容设为未选中
    for (var item in state.generatedContents) {
      item.isSelected = false;
    }
    
    // 设置当前内容为选中
    final index = state.generatedContents.indexOf(content);
    if (index != -1) {
      state.generatedContents[index].isSelected = true;
    }
    
    // 刷新列表
    state.generatedContents.refresh();
  }

  // 重新生成内容
  void regenerateContent() {
    // 这里可以调用API生成新内容
    // 模拟添加新内容
    final newContent = GeneratedContent(
      id: DateTime.now().millisecondsSinceEpoch.toString(),
      text: '新生成的内容示例，这里将显示AI生成的新文本。新生成的内容示例，这里将显示AI生成的新文本。',
      isSelected: false,
    );
    
    state.generatedContents.insert(0, newContent);
  }

  // 完成选择
  void completeSelection() {
    // 获取选中的内容
    final selectedContent = state.generatedContents.firstWhere(
      (content) => content.isSelected,
      orElse: () => state.generatedContents.isNotEmpty 
          ? state.generatedContents.first 
          : GeneratedContent(id: '0', text: ''),
    );
    
    // 返回选中的内容并关闭页面
    Get.back(result: selectedContent);
  }
}
